package db

import (
	 _"github.com/go-sql-driver/mysql"
	"github.com/jmoiron/sqlx"
)

var (
	DB *sqlx.DB
)
//连接数据库
func Init(dns string)  error{

	//这段代码看似没有任何问题,但是在使用sqlDb对数据库进行操作时却报错
	//
	//2019/04/11 14:32:08 [Recovery] 2019/04/11 - 14:32:08 panic recovered:
	//runtime error: invalid memory address or nil pointer dereference
	//原因就是
	//当我们在使用 := 时 会创建一个新的sqlDb变量,新的sqlDb会把全局变量sqlDb覆盖掉
	var err error
	DB, err = sqlx.Open("mysql", dns)

	if err !=nil{
		return err
	}
	err = DB.Ping()  //干啥用查查时
	if err != nil {
		return err
	}
	//做个限制
	DB.SetMaxOpenConns(100)
	DB.SetMaxIdleConns(16)

	return nil
}